<?php

require_once("../../util/conexao.php");

class VeiculoDao {

    public function retornaVeiculos($limite, $arrayDados = "") {

        $conexao = Conexao::conectar();
        $veiculos = array();
        $somaCondicao = 0;

        $condicaoPlaca = "";
        $condicaoChassi = "";
        $condicaoModelo = "";

        if (!empty($arrayDados)) {
            if ($arrayDados["tipo"] == "placa") {
                if (!empty($arrayDados["placa"])) {
                    $condicaoPlaca = "and v.placa='" . $arrayDados["placa"] . "'";
                    $somaCondicao++;
                }
            }

            if ($arrayDados["tipo"] == "chassi") {
                if (!empty($arrayDados["chassi"])) {
                    $condicaoChassi = "and v.chassi='" . $arrayDados["chassi"] . "'";
                    $somaCondicao++;
                }
            }

            if ($arrayDados["tipo"] == "modelo") {
                if (!empty($arrayDados["modelo"])) {
                    $condicaoModelo = "and v.modelo='" . $arrayDados["modelo"] . "'";
                    $somaCondicao++;
                }
            }
        }

        if ($limite > 0) {
            $limit = "limit {$limite}";
        } else {
            if ($somaCondicao > 0) {
                $limit = "";
            } else {
                $limit = "limit 20";
            }
        }

        $query = "select v.id as id,v.placa as placa,m.nome as modelo,v.nome as nome,
		            v.valorVenda as valorVenda,v.valorVendaMinimo as valorVendaMinimo,v.valorCorretagem as valorCorretagem
		            from tbveiculo v
					INNER JOIN tbmodelo m ON(m.id = v.modelo)
		            where v.estoqueLoja='S' and v.deletado='N' " . $condicaoPlaca . " " . $condicaoChassi . " " . $condicaoModelo . " ORDER BY placa " . $limit;

        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {

            $veiculos[$i]['id'] = $row->id;
            $veiculos[$i]['placa'] = $row->placa;
            $veiculos[$i]['modelo'] = $row->modelo;
            $veiculos[$i]['nome'] = $row->nome;
            $veiculos[$i]['valorVenda'] = $row->valorVenda;
            $veiculos[$i]['valorVendaMinimo'] = $row->valorVendaMinimo;

            $despesas = $this->despesasVeiculo($row->id, $conexao);

            $total = 0;

            foreach ($despesas as $despesa) {
                $total+=$despesa["valorTotal"];
            }

            $veiculos[$i]['valorDespesa'] = $total + $row->valorCorretagem;

            $i++;
        }

        Conexao::desconectar();
        return $veiculos;
    }

    public function retornarEspecieTipo() {

        $conexao = Conexao::conectar();
        $especies = array();

        $query = "select * from tbespecie where deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $especies[$i]['id'] = $row->id;
            $especies[$i]['nome'] = $row->nome;
            $i++;
        }

        Conexao::desconectar();
        return $especies;
    }

    public function retornarMarca() {

        $conexao = Conexao::conectar();
        $marcas = array();

        $query = "select * from tbmarca where deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $marcas[$i]['id'] = $row->id;
            $marcas[$i]['nome'] = $row->nome;
            $i++;
        }

        Conexao::desconectar();
        return $marcas;
    }

    public function retornarModelos() {

        $conexao = Conexao::conectar();
        $modelos = array();

        $query = "select * from tbmodelo where deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $modelos[$i]['id'] = $row->id;
            $modelos[$i]['nome'] = $row->nome;
            $i++;
        }

        Conexao::desconectar();
        return $modelos;
    }

    public function retornarCores() {

        $conexao = Conexao::conectar();
        $cores = array();

        $query = "select * from tbcor where deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $cores[$i]['id'] = $row->id;
            $cores[$i]['nome'] = $row->nome;
            $i++;
        }

        Conexao::desconectar();
        return $cores;
    }

    public function retornarLojas() {

        $conexao = Conexao::conectar();
        $lojas = array();

        $query = "select * from tbloja where deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $lojas[$i]['id'] = $row->id;
            $lojas[$i]['nome'] = $row->empresa;
            $i++;
        }

        Conexao::desconectar();
        return $lojas;
    }

    public function retornarOficinas() {

        $conexao = Conexao::conectar();
        $oficinas = array();

        $query = "select * from tboficina where deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $oficinas[$i]['id'] = $row->id;
            $oficinas[$i]['nome'] = $row->empresa;
            $i++;
        }

        Conexao::desconectar();
        return $oficinas;
    }

    public function verificarExistenciaVeiculo($placa) {

        $conexao = Conexao::conectar();

        $query = "select count(*) as total from tbveiculo where placa='" . $placa . "' and estoqueLoja='S' and deletado='N'";
        $res = mysql_query($query, $conexao);
        $row = mysql_fetch_object($res);

        return $row->total;

        Conexao::desconectar();
    }

    public function verificarExistenciaVeiculoAtualizar($placa, $id) {

        $conexao = Conexao::conectar();

        $query = "select count(*) as total from tbveiculo where placa='" . $placa . "' and id<>" . $id . " and estoqueLoja='S' and deletado='N'";
        $res = mysql_query($query, $conexao);
        $row = mysql_fetch_object($res);

        return $row->total;

        Conexao::desconectar();
    }

    public function cadastrarVeiculo($arrayDados) {

        $conexao = Conexao::conectar();

        $query = "insert into tbveiculo(idFornecedor,dataCompra,placa,chassi,anoFabricacao,anoModelo,especieTipo,marca,modelo,renavam,cor,
		          combustivel,numeroMotor,nome,cpfCnpj,estado,cidade,bairro,rua,valorCompra,valorAgenciamento,naturezaOperacao,
				  observacao,estoqueLoja,oficina,idLoja,idOficina,corretor,valorCorretagem)values
				  (" . $arrayDados["fornecedor"] . ",'" . $arrayDados["dataCompra"] . "','" . $arrayDados["placa"] . "', '" . $arrayDados["chassi"] . "', '" . $arrayDados["anofabricacao"] . "', '" . $arrayDados["anomodelo"] . "', 
				   '" . $arrayDados["especie"] . "', '" . $arrayDados["marca"] . "', '" . $arrayDados["modelo"] . "', '" . $arrayDados["renavam"] . "', '" . $arrayDados["cor"] . "',
				  '" . utf8_decode($arrayDados["combustivel"]) . "','" . $arrayDados["numeroMotor"] . "','" . utf8_decode($arrayDados["nome"]) . "', '" . $arrayDados["cpfcnpj"] . "', '" . $arrayDados["estado"] . "', '" . $arrayDados["cidade"] . "', '" . utf8_decode($arrayDados["bairro"]) . "', 
				  '" . utf8_decode($arrayDados["rua"]) . "', '" . $arrayDados["valorcompra"] . "', '" . $arrayDados["valoragenciamento"] . "', '" . $arrayDados["natureza"] . "', '" . utf8_decode($arrayDados["observacao"]) . "', 
				  '" . $arrayDados["estoqueLoja"] . "', '" . $arrayDados["oficina"] . "', '" . $arrayDados["idloja"] . "','" . $arrayDados["idoficina"] . "','" . $arrayDados["corretor"] . "','" . $arrayDados["valorcorretagem"] . "')";

        $res = mysql_query($query, $conexao);
        $id = mysql_insert_id();

        return $res . "$" . $id;

        Conexao::desconectar();
    }

    public function cadastrarVeiculoBasico($arrayDados) {

        $conexao = Conexao::conectar();

        $query = "insert into tbveiculo(placa,especieTipo,marca,modelo,cor,idOficina,oficina,cadastroCompleto)values
				  ('" . $arrayDados["placa"] . "','" . $arrayDados["especie"] . "','" . $arrayDados["marca"] . "', 
				   '" . $arrayDados["modelo"] . "','" . $arrayDados["cor"] . "','" . $arrayDados["idoficina"] . "','S','N')";

        $res = mysql_query($query, $conexao);
        $id = mysql_insert_id();

        return $res . "$" . $id;

        Conexao::desconectar();
    }

    public function atualizarVeiculo($arrayDados) {

        $conexao = Conexao::conectar();

        $query = "update tbveiculo set idFornecedor=" . $arrayDados["fornecedor"] . ",dataCompra='" . $arrayDados["dataCompra"] . "',placa='" . $arrayDados["placa"] . "',chassi='" . $arrayDados["chassi"] . "',anoFabricacao='" . $arrayDados["anofabricacao"] . "',
		          anoModelo='" . $arrayDados["anomodelo"] . "',especieTipo='" . $arrayDados["especie"] . "',marca='" . $arrayDados["marca"] . "',
				  modelo='" . $arrayDados["modelo"] . "',renavam='" . $arrayDados["renavam"] . "',cor='" . $arrayDados["cor"] . "',
		          combustivel='" . utf8_decode($arrayDados["combustivel"]) . "',numeroMotor='" . $arrayDados['numeroMotor'] . "',nome='" . utf8_decode($arrayDados["nome"]) . "',cpfCnpj='" . $arrayDados["cpfcnpj"] . "',
				  estado='" . $arrayDados["estado"] . "',cidade='" . $arrayDados["cidade"] . "',bairro='" . utf8_decode($arrayDados["bairro"]) . "',
				  rua='" . utf8_decode($arrayDados["rua"]) . "',observacao='" . utf8_decode($arrayDados["observacao"]) . "',
				  gravameLiberado='" . $arrayDados["gravameLiberado"] . "',obsGravame='" . $arrayDados["obsGravame"] . "'
				  where id=" . $arrayDados["id"];

        $res = mysql_query($query, $conexao);

        return $res;

        Conexao::desconectar();
    }

    public function atualizarVeiculoCadastroBasico($arrayDados) {

        $conexao = Conexao::conectar();

        $query = "update tbveiculo set idFornecedor=" . $arrayDados["fornecedor"] . ",placa='" . $arrayDados["placa"] . "',chassi='" . $arrayDados["chassi"] . "',
		          anoFabricacao='" . $arrayDados["anofabricacao"] . "',anoModelo='" . $arrayDados["anomodelo"] . "',especieTipo='" . $arrayDados["especie"] . "',
				  marca='" . $arrayDados["marca"] . "',modelo='" . $arrayDados["modelo"] . "',renavam='" . $arrayDados["renavam"] . "',cor='" . $arrayDados["cor"] . "',
		          combustivel='" . utf8_decode($arrayDados["combustivel"]) . "',nome='" . utf8_decode($arrayDados["nome"]) . "',cpfCnpj='" . $arrayDados["cpfcnpj"] . "',
				  estado='" . $arrayDados["estado"] . "',cidade='" . $arrayDados["cidade"] . "',bairro='" . utf8_decode($arrayDados["bairro"]) . "',rua='" . utf8_decode($arrayDados["rua"]) . "',
				  valorCompra='" . $arrayDados["valorcompra"] . "',valorAgenciamento='" . $arrayDados["valoragenciamento"] . "',naturezaOperacao='" . $arrayDados["natureza"] . "',
				  observacao='" . utf8_decode($arrayDados["observacao"]) . "',corretor='" . $arrayDados["corretor"] . "',valorCorretagem='" . $arrayDados["valorcorretagem"] . "',cadastroCompleto='S'
				  where id=" . $arrayDados["id"];

        $res = mysql_query($query, $conexao);

        return $res . "$" . $arrayDados["id"];

        Conexao::desconectar();
    }

    public function retornarDadosVeiculo($codigo) {

        $conexao = Conexao::conectar();

        $query = "select * from tbveiculo where id=" . $codigo;
        $res = mysql_query($query, $conexao);

        return mysql_fetch_object($res);

        Conexao::desconectar();
    }

    public function cadastrarMovimento($arrayDados, $idVeiculo) {

        $conexao = Conexao::conectar();

        $query = "insert into tbmovimentacao(idVeiculo,valorTotal,idUser,parcelas,natureza,tipo)
		          values(" . $idVeiculo . "," . $arrayDados["valorcompra"] . "," . $_SESSION["dadosUsuario"]["login"] . "," . $arrayDados["parcelas"] . ",'" . $arrayDados["natureza"] . "','PAGAMENTO')";
        $res = mysql_query($query, $conexao);
        $id = mysql_insert_id();

        return $res . "$" . $id;

        Conexao::desconectar();
    }

    public function cadastrarTitulo($arrayDados, $idMovimento, $idVeiculo) {

        $conexao = Conexao::conectar();

        for ($i = 0; $i < $arrayDados["parcelas"]; $i++) {

            $query = "insert into tbtitulos(dataVencimento,valor,parcela,idMovimento,idVeiculo)
		    	      values('" . $arrayDados['dataParcela'][$i] . "'," . $arrayDados['valorParcela'][$i] . "," . ($i + 1) . "," . $idMovimento . "," . $idVeiculo . ")";
            $res = mysql_query($query, $conexao);

            if (!$res) {
                $break;
            }
        }

        return $res;

        Conexao::desconectar();
    }

    public function encaminharVeiculoOficina($idVeiculo, $idOficina) {

        $conexao = Conexao::conectar();

        $query = "insert into tbveiculooficina(idVeiculo,idOficina,dataEntrada)values(" . $idVeiculo . "," . $idOficina . ",'" . date('Y-m-d H:i:s') . "')";
        $res = mysql_query($query, $conexao);
        return $res;

        Conexao::desconectar();
    }

    public function atualizarStatusOficinaVeiculo($arrayDados) {

        $conexao = Conexao::conectar();

        $query = "update tbveiculo set estoqueLoja='N',oficina='S',idLoja=0,idOficina=" . $arrayDados["oficina"] . " where id=" . $arrayDados["codigo"];
        $res = mysql_query($query, $conexao);

        return $res;

        Conexao::desconectar();
    }

    public function despesasVeiculo($codigo, $conexao = "") {

        if (empty($conexao)) {
            $conexao = Conexao::conectar();
        }

        $despesas = array();

        $query = "select m.valorTotal,n.nome,m.dataCadastro 
		            from tbmovimentacao m 
					INNER JOIN tbnatureza n ON(m.natureza=n.id)
					where m.idVeiculo=" . $codigo . " and m.tipo='PAGAMENTO' and m.deletado='N'";

        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $despesas[$i]['valorTotal'] = $row->valorTotal;
            $despesas[$i]['natureza'] = $row->nome;
            $despesas[$i]['dataCadastro'] = $row->dataCadastro;
            $i++;
        }

        return $despesas;
    }

    public function adicionarValorVendaVeiculo($arrayDados) {

        $conexao = Conexao::conectar();

        $query = "update tbveiculo set valorVenda=" . $arrayDados["valorveiculo"] . ",valorVendaMinimo=" . $arrayDados["valorveiculominimo"] . "
		          where id=" . $arrayDados["idVeiculo"];

        $res = mysql_query($query, $conexao);

        return $res;

        Conexao::desconectar();
    }

    public function retornaVeiculosCadIncompletos() {

        $conexao = Conexao::conectar();

        $veiculos = array();

        $query = "select v.id as idV, v.placa as placaV ,e.nome as nomeEspecie, m.nome as nomeM, ml.nome as nomeML,
		            c.nome as corV,o.empresa as nomeOficina
		            from tbveiculo v
					INNER JOIN tbespecie e ON (e.id = v.especieTipo)
					INNER JOIN tbmarca m ON (m.id = v.marca)
					INNER JOIN tbmodelo ml ON (ml.id = v.modelo)
					INNER JOIN tbcor c ON (c.id = v.cor)
					INNER JOIN tboficina o ON (o.id = v.idOficina)
		            where v.cadastroCompleto='N' and v.deletado='N'";

        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $veiculos[$i]['id'] = $row->idV;
            $veiculos[$i]['placa'] = $row->placaV;
            $veiculos[$i]['especieTipo'] = $row->nomeEspecie;
            $veiculos[$i]['marca'] = $row->nomeM;
            $veiculos[$i]['modelo'] = $row->nomeML;
            $veiculos[$i]['cor'] = $row->corV;
            $veiculos[$i]['oficina'] = $row->nomeOficina;
            $i++;
        }

        return $veiculos;

        Conexao::desconectar();
    }

}

?>